home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
IM-PC11.ZIP
/
PCHAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-09-20
|
39KB
|
2,029 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN007
Boolean BOOLEAN008
Boolean BOOLEAN009
Boolean BOOLEAN010
Boolean BOOLEAN011
Boolean BOOLEAN012
Boolean BOOLEAN013
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
Integer INTEGER024
Integer INTEGER025
Integer INTEGER026
Integer INTEGER027
Integer INTEGER028
Integer INTEGER029
Integer INTEGER030
Integer INTEGER031
Integer INTEGER032
Integer INTEGER033
Integer INTEGER034
Integer INTEGER035
Integer INTEGER036
Integer INTEGER037
Integer INTEGER038
Integer INTEGER039
Integer INTEGER040
Integer INTEGER041
Integer INTEGER042
Integer INTEGER043
Integer INTEGER044
Integer INTEGER045
Integer INTEGER046
Integer INTEGER047
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String TSTRING014(200)
String TSTRING015(200)
String TSTRING016(23)
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String STRING031
String STRING032
String STRING033
String STRING034
String STRING035
String STRING036
String STRING037
String STRING038
String STRING039
String STRING040
String STRING041
String STRING042
String TSTRING043(19)
String TSTRING044(19)
String TSTRING045(19)
String TSTRING046(19)
String STRING047
String STRING048
String STRING049
String STRING050
String STRING051
String STRING052
String STRING053
String STRING054
String STRING055
String STRING056
String STRING057
String STRING058
String STRING059
String STRING060
String STRING061
String STRING062
String STRING063
String TSTRING064(16)
String TSTRING065(16)
String STRING066
String STRING067
String STRING068
String STRING069
Word WORD001
BigStr BIGSTR001
BigStr BIGSTR002
BigStr BIGSTR003
BigStr BIGSTR004
BigStr BIGSTR005
;------------------------------------------------------------------------------
STRING009 = " Anti Decompilation System "
STRING010 = " Method: IronMan "
STRING011 = " Coding: Jugler "
STRING008 = " " + Chr(181) + " " + Chr(181) + " " + Chr(181) + " @X0F" + Chr(181) + "@X08 " + Chr(68) + Chr(101) + "@X07" + Chr(97) + Chr(116) + Chr(104) + "@X0F" + Chr(39) + Chr(115) + Chr(32) + Chr(65) + Chr(78) + " " + Chr(84) + Chr(105) + Chr(45) + " " + Chr(68) + Chr(69) + Chr(67) + Chr(79) + Chr(77) + Chr(80) + Chr(105) + " " + Chr(76) + Chr(69) + Chr(32) + Chr(83) + Chr(121) + Chr(115) + Chr(116) + Chr(101) + Chr(109) + Chr(32) + Chr(105) + Chr(110) + Chr(32) + Chr(69) + "@X07" + Chr(102) + Chr(102) + Chr(101) + "@X08" + Chr(99) + Chr(116) + Chr(33) + "@X0F " + Chr(198) + "@X07 " + Chr(32) + " " + Chr(33) + " " + Chr(99) + " "
If (GrafMode() == "N") Then
Goto LABEL084
Endif
STRING036 = ReadLine(PCBDat(), 28)
STRING035 = ReadLine(PCBDat(), 29)
STRING047 = Left(ReadLine(PPEPath() + "pchat.cfg", 1), 4)
STRING048 = Left(ReadLine(PPEPath() + "pchat.cfg", 2), 4)
STRING049 = Left(ReadLine(PPEPath() + "pchat.cfg", 3), 4)
STRING050 = Left(ReadLine(PPEPath() + "pchat.cfg", 4), 4)
STRING051 = ReadLine(PPEPath() + "pchat.cfg", 5)
STRING052 = ReadLine(PPEPath() + "pchat.cfg", 6)
STRING053 = ReadLine(PPEPath() + "pchat.cfg", 7)
STRING054 = ReadLine(PPEPath() + "pchat.cfg", 8)
STRING055 = ReadLine(PPEPath() + "pchat.cfg", 9)
STRING056 = ReadLine(PPEPath() + "pchat.cfg", 10)
STRING057 = ReadLine(PPEPath() + "pchat.cfg", 11)
STRING058 = ReadLine(PPEPath() + "pchat.cfg", 12)
STRING059 = ReadLine(PPEPath() + "pchat.cfg", 13)
STRING060 = ReadLine(PPEPath() + "pchat.cfg", 14)
STRING061 = ReadLine(PPEPath() + "pchat.cfg", 15)
FClose -1
STRING022 = STRING051
STRING018 = STRING047
STRING017 = STRING048
INTEGER018 = 0
INTEGER017 = 0
INTEGER028 = 1
INTEGER019 = 1
BOOLEAN010 = 0
BOOLEAN011 = 0
BOOLEAN009 = 0
BOOLEAN008 = 0
BOOLEAN007 = 0
BOOLEAN013 = 0
BOOLEAN012 = 0
INTEGER007 = 1
INTEGER036 = 3
INTEGER035 = 3
INTEGER034 = 1
INTEGER033 = 0
INTEGER020 = 4
INTEGER023 = 2
INTEGER022 = 2
INTEGER021 = 14
INTEGER015 = MinLeft()
STRING069 = " @X01P@X09e@X03r@X0Bf@X0Fect Cha@X0Bt@X03t@X09e@X01r @X0Bv@X091@X0F.@X091 @X07By @X0FIro@X0CnM@X04an@X07"
INTEGER009 = Len(STRING069)
STRING066 = " "
For INTEGER010 = 1 To INTEGER009
INTEGER011 = INTEGER011 + Asc(Mid(STRING069, INTEGER010, 1))
Next
INTEGER011 = INTEGER011 - 426
If (INTEGER011 <> 7000) Then
Cls
AnsiPos 15, 11
Print "@X0CSecurity Violation@X0F !!! @X07- @X04PPE HACK ATTEMPT!@X07"
Delay 30
End
Endif
FOpen 4, PPEPath() + "MACRO.LST", 2, 0
:LABEL001
If (Ferr(4)) Goto LABEL002
FGet 4, TSTRING014(INTEGER007)
FGet 4, TSTRING015(INTEGER007)
Inc INTEGER007
Goto LABEL001
:LABEL002
FClose 4
While (INTEGER018 <> STRING053) Do
Inc INTEGER018
TSTRING064(INTEGER018) = Mid(STRING054, INTEGER019, 4)
INTEGER019 = INTEGER019 + 5
EndWhile
INTEGER019 = 1
While (INTEGER017 <> STRING055) Do
Inc INTEGER017
TSTRING065(INTEGER017) = Mid(STRING056, INTEGER019, 4)
INTEGER019 = INTEGER019 + 5
EndWhile
INTEGER012 = GetX()
INTEGER013 = GetY()
For INTEGER014 = 1 To 23
TSTRING016(INTEGER014) = ScrText(1, INTEGER014, 79, 1)
Next
StartDisp 1
Cls
Print STRING069 + "@X08/@X0AD@X02o@X0AD @X08[@X0FCTRL-W@X08] @X07Clr Window @X08[@X0FESC@X08] @X07Quit Chat"
AnsiPos 1, 2
Print "@X0F┌──@X07───@X08─@X07─@X08───────────────────────────────────────────────────────────────@X07─@X08─@X07───@X0F──┐@X07"
AnsiPos 1, 3
Print "@X07└──@X08─@X07─@X08───────────────────────────────────────────────────────────────────────@X07──┘"
AnsiPos 1, 13
Print "@X0F──@X07──@X08──[@X07REMARK: COLOR: @X08]───────────────────────────────────────────@X07──@X0F──"
AnsiPos 8, 3
If (Len(STRING022) < 17) Then
Print "@X08[@X0F ", STRING049 + STRING022
Else
Print "@X08[@X0F ", STRING049 + Left(STRING022, 17)
Endif
Print "@X08 ]"
AnsiPos 54, 13
STRING027 = U_Name()
If (STRING027 == "") Then
STRING027 = "User"
STRING028 = "User"
Else
STRING027 = Mixed(U_Name())
STRING028 = STRING027
Endif
If (Len(STRING027) < 17) Then
Print "@X08[@X0F ", STRING050 + STRING027
Else
Print "@X08[@X0F ", STRING050 + Left(STRING027, 17)
Endif
Print "@X08 ]"
AnsiPos 1, 22
Print "@X0F┌─@X07─@X0F─@X07───@X08─@X07─@X08────────────────────────────────────────────────────[@X07CTRL-Z@X08] @X07Help@X08───@X07─┐"
AnsiPos 1, 23
Print "@X07└──@X08─@X07─@X08───────────────────────────────────────────────────────────────────@X07─@X08─@X07──@X0F──┘"
SPrint "6H"
SPrint "
[
CAPTURE:
OFF
REMARK:
OFF
COLOR:
OFF
]"
Print "7H"
Print "
[
REMARK:
OFF
COLOR:
OFF
]"
Print "@X07"
AnsiPos INTEGER023, INTEGER020
:LABEL003
INTEGER016 = MinLeft()
AdjTime INTEGER015 - INTEGER016
If ((BOOLEAN013 == 1) && (BOOLEAN009 == 0)) Then
STRING018 = TSTRING064(INTEGER018)
Endif
If ((INTEGER020 > 12) && (INTEGER023 < 78)) Then
For INTEGER024 = 4 To 10
AnsiPos 2, INTEGER024
ClrEol
Next
Gosub LABEL081
INTEGER023 = 2
For INTEGER024 = 11 To 12
AnsiPos 2, INTEGER024
ClrEol
Next
AnsiPos INTEGER023, INTEGER020
Goto LABEL003
ElseIf ((INTEGER023 == 78) && (INTEGER020 == 12)) Then
For INTEGER024 = 4 To 10
AnsiPos 2, INTEGER024
ClrEol
Next
Gosub LABEL081
For INTEGER024 = 11 To 12
AnsiPos 2, INTEGER024
ClrEol
Next
AnsiPos INTEGER023 - Len(BIGSTR003) / 5, INTEGER020 - 1
Print Space(Len(BIGSTR003) / 5)
INTEGER023 = 2
AnsiPos INTEGER023, INTEGER020
Print BIGSTR003
INTEGER023 = Len(BIGSTR003) / 5 + 2
If (BOOLEAN011 == 1) Then
FPutLn 1, "[" + STRING022 + "]: ", STRING062
STRING062 = BIGSTR003
Endif
Goto LABEL003
Endif
STRING020 = KInkey()
If (STRING020 == "") Goto LABEL067
If (Len(STRING020) > 1) Goto LABEL003
AnsiPos INTEGER023, INTEGER020
If ((STRING020 == Chr(8)) && (INTEGER023 > 2)) Then
STRING062 = Left(STRING062, Len(STRING062) - 1)
BIGSTR003 = Left(BIGSTR003, Len(BIGSTR003) - 5)
Print Chr(8) + Chr(32) + Chr(8)
Dec INTEGER023
Goto LABEL003
Else
If (STRING020 == Chr(8)) Goto LABEL003
Endif
If ((INTEGER023 == 78) && (STRING020 > Chr(27))) Then
If (Len(BIGSTR003) < 78) Then
AnsiPos INTEGER023 - Len(BIGSTR003) / 5, INTEGER020
Print Space(Len(BIGSTR003) / 5)
INTEGER023 = 2
Inc INTEGER020
AnsiPos INTEGER023, INTEGER020
Print BIGSTR003
INTEGER023 = Len(BIGSTR003) / 5 + 2
Goto LABEL004
Endif
Inc INTEGER020
INTEGER023 = 2
AnsiPos INTEGER023, INTEGER020
BIGSTR003 = ""
:LABEL004
If (BOOLEAN011 == 1) Then
FPutLn 1, "[" + STRING022 + "]: ", STRING062
STRING062 = BIGSTR003
Endif
Endif
If (STRING020 == " ") Then
Gosub LABEL005
Goto LABEL010
:LABEL005
For INTEGER008 = 1 To INTEGER007
If (Upper(TSTRING014(INTEGER008)) == Upper(StripAtx(BIGSTR003))) Then
Backup Len(BIGSTR003) / 5
If (INTEGER023 - Len(StripAtx(BIGSTR003)) + Len(TSTRING015(INTEGER008)) - 78 < 0) Then
Gosub LABEL006
STRING062 = Left(STRING062, Len(STRING062) - Len(StripAtx(BIGSTR003))) + TSTRING015(INTEGER008)
Goto LABEL009
Endif
If (BOOLEAN011 == 1) Then
STRING062 = Left(STRING062, Len(STRING062) - Len(StripAtx(BIGSTR003)))
FPutLn 1, "[" + STRING022 + "]: ", STRING062
STRING062 = TSTRING015(INTEGER008)
Endif
If (INTEGER020 < 12) Then
Print Space(Len(BIGSTR003) / 5)
INTEGER023 = Len(TSTRING015(INTEGER008)) + 2
Inc INTEGER020
AnsiPos 2, INTEGER020
Gosub LABEL006
Goto LABEL008
:LABEL006
If (BOOLEAN013 == 0) Then
Print STRING018 + TSTRING015(INTEGER008)
Goto LABEL007
Endif
STRING013 = ""
For INTEGER005 = 1 To Len(TSTRING015(INTEGER008))
STRING013 = STRING013 + TSTRING064(INTEGER018) + Mid(TSTRING015(INTEGER008), INTEGER005, 1)
Inc INTEGER018
If (INTEGER018 == S2I(STRING053, 10) + 1) INTEGER018 = 1
Next
Print STRING013
:LABEL007
Return
:LABEL008
Goto LABEL009
Endif
For INTEGER024 = 4 To 10
AnsiPos 2, INTEGER024
ClrEol
Next
Gosub LABEL081
For INTEGER024 = 11 To 12
AnsiPos 2, INTEGER024
ClrEol
Next
AnsiPos INTEGER023 - Len(TSTRING014(INTEGER008)), INTEGER020 - 1
Print Space(Len(TSTRING014(INTEGER008)))
INTEGER023 = 2
AnsiPos INTEGER023, INTEGER020
Gosub LABEL006
INTEGER023 = Len(TSTRING015(INTEGER008)) + 2
If (BOOLEAN011 == 1) Then
FPutLn 1, "[" + STRING022 + "]: ", STRING062
STRING062 = BIGSTR003
Endif
:LABEL009
INTEGER023 = INTEGER023 - Len(StripAtx(BIGSTR003)) + Len(TSTRING015(INTEGER008))
Break
Endif
Next
Return
:LABEL010
BIGSTR003 = ""
Print STRING018 + STRING020
STRING062 = STRING062 + STRING020
Inc INTEGER023
Goto LABEL003
Endif
If (STRING020 > Chr(27)) Then
Print STRING018 + STRING020
STRING062 = STRING062 + STRING020
BIGSTR003 = BIGSTR003 + STRING018 + STRING020
Inc INTEGER023
Endif
If (BOOLEAN013 == 1) Then
If (INTEGER018 == STRING053) Then
INTEGER018 = 1
Goto LABEL011
Endif
Inc INTEGER018
Endif
:LABEL011
If (STRING020 < Chr(28)) Then
If (STRING020 == Chr(27)) Then
If (BOOLEAN011 == 1) Then
If (STRING062 <> "") Then
FPutLn 1, "[" + STRING022 + "]: ", STRING062
Endif
FPutLn 1
FPut 1, " φ PerfectChat Capture ended at "
FPut 1, Date()
FPut 1, " "
FPut 1, Time()
FPut 1, " with "
FPutLn 1, STRING027 + " φ"
FPutLn 1, "────────────────────────────────────────────────────────────────────────────────"
FPutLn 1, " [Perfect Chatter v1.1 By IronMan]"
FPutLn 1
FClose 1
Endif
Goto LABEL084
Endif
If (STRING020 == Chr(26)) Then
INTEGER026 = GetX()
INTEGER027 = GetY()
AnsiPos 36, 3
Print "@X08───────────────────────────────────────"
AnsiPos 79, 23
SaveScrn
MPrint "23H"
MPrint "
┤
Sysop Viewing Help File
├"
AnsiPos INTEGER026, INTEGER027
SPrint "0H"
SPrint "
┌──
───
───────────────
──
──┐"
SPrint "0H"
SPrint "│
▄ ▄ ▄▄ ▄ ▄▄▄ █
▌
│"
SPrint "0H"
SPrint "│
█▄█ █▄ █
▌
█▄█ █
▌
│"
SPrint "0H"
SPrint "│
█
▌
█ █▄ █▄ █
▌
▀
│"
SPrint "30H"
SPrint "│
═──═─═──═──═──══ ▀ ═
─
│"
SPrint "30H"
SPrint "│ [
CTRL-W
]
Clear Screen
│"
SPrint "30H"
SPrint "│ [
CTRL-O
]
Change Color
│"
SPrint "30H"
SPrint "│ [
CTRL-E
]
Remark Words
│"
SPrint "30H"
SPrint "│ [
CTRL-G
]
Beep User
│"
SPrint "30H"
SPrint "│ [
CTRL-C
]
Log Chat
│"
SPrint "30H"
SPrint "│ [
CTRL-L
]
Lock Keys
│"
SPrint "30H"
SPrint "│ [
CTRL-T
]
View Text
│"
SPrint "30H"
SPrint "│ [
CTRL-U
]
User Edit
│"
SPrint "30H"
SPrint "│
[
ESC
]
Quit Chat │"
SPrint "30H"
SPrint "└────
──────────────
────
──┘"
:LABEL012
STRING067 = KInkey()
If ((STRING067 <> Chr(13)) && (STRING067 <> " ")) Goto LABEL012
Cls
RestScrn
Gosub LABEL083
AnsiPos INTEGER023, INTEGER020
STRING020 = ""
Goto LABEL003
Endif
If (STRING020 == Chr(15)) Then
AnsiPos INTEGER023, INTEGER020
If ((BOOLEAN013 == 0) && (BOOLEAN009 == 0)) Then
BOOLEAN013 = 1
INTEGER026 = GetX()
INTEGER027 = GetY()
SPrint "1H"
SPrint "
ON "
AnsiPos INTEGER026, INTEGER027
Goto LABEL013
Endif
If ((BOOLEAN013 == 1) && (BOOLEAN009 == 0)) Then
BOOLEAN013 = 0
STRING018 = STRING047
INTEGER026 = GetX()
INTEGER027 = GetY()
SPrint "1H"
SPrint "
OFF"
AnsiPos INTEGER026, INTEGER027
Endif
:LABEL013
STRING020 = ""
Goto LABEL003
Endif
If (STRING020 == Chr(21)) Then
INTEGER026 = GetX()
INTEGER027 = GetY()
AnsiPos 36, 3
Print "@X08───────────────────────────────────────"
AnsiPos 79, 23
SaveScrn
MPrint "25H"
MPrint "
┤
Wait a Sec..
├"
SPrint "H"
SPrint "
Edit User Record
Record of "
SPrint "H"
SPrint "
┌───────────┬──────────────────────────┬─────────────────┬───────────────────┐ "
SPrint "H"
SPrint " │
Name
│ │
Last DIR List
│ │ "
SPrint "H"
SPrint " │
City
│ │
Last Date On
│ │ "
SPrint "H"
SPrint " │
B/D Phone
│ │
Last Time On
│ │ "
SPrint "H"
SPrint " │
H/V Phone
│ │
Elpased Time On
│ │ "
SPrint "H"
SPrint " │
Password
│ │
Number Times On
│ │ "
SPrint "H"
SPrint " │
Security
│ │
Number Uploads
│ │ "
SPrint "H"
SPrint " │
Expert
│ │
Number Downloads
│ │ "
SPrint "1H"
SPrint " │
Protocol
│ │
Daily Download
│ │ "
SPrint "1H"
SPrint " │
Page Len
│ │
Total Upload
│ │ "
SPrint "1H"
SPrint " │
Reg Ex Date
│ │
Total Download
│ │ "
SPrint "1H"
SPrint " │
Expired Sec
│ │
Messages Read
│ │ "
SPrint "1H"
SPrint " │
Msg Clear
│ │
Messages Left
│ │ "
SPrint "1H"
SPrint " │
Last in
│ │
Full Scrn Editor
│ │ "
SPrint "1H"
SPrint " │
Delete User
│ │
79-Column Editor
│ │ "
SPrint "1H"
SPrint " ├───────────┤ │
Scroll Long Msgs
│ │ "
SPrint "1H"
SPrint " │
Comment-1
│ │
Long Headers
│ │ "
SPrint "1H"
SPrint " │
Comment-2
│ │
Chat Status
│ │ "
SPrint "1H"
SPrint " └───────────┴──────────────────────────┴─────────────────┴───────────────────┘ "
SPrint "1H"
SPrint ""
SPrint "1H"
SPrint "
[
ESC
]
Exit
[
TAB
]
Switch Window
[
D─ D
]
Jump 1
[
PgDn
/
PgUp
]
Jump 10
[
S
]
Search User"
SPrint "1H"
SPrint ""
INTEGER037 = U_RecNum(U_Name())
INTEGER040 = INTEGER037
INTEGER038 = FileInf(ReadLine(PCBDat(), 29), 4) / 400
AnsiPos 75, 1
SPrint "
", INTEGER038
AnsiPos 3, 3
For INTEGER039 = 3 To 19
TSTRING045(INTEGER039) = ScrText(42, INTEGER039, 17, 0)
Next
For INTEGER039 = 3 To 19
TSTRING046(INTEGER039) = ScrText(42, INTEGER039, 17, 0)
Next
For INTEGER039 = 3 To 19
TSTRING043(INTEGER039) = ScrText(3, INTEGER039, 11, 0)
Next
For INTEGER039 = 3 To 19
TSTRING044(INTEGER039) = ScrText(3, INTEGER039, 11, 0)
Next
:LABEL014
AnsiPos 68, 1
INTEGER031 = 3 - Len(INTEGER037)
SPrint "
", INTEGER037
SPrint Space(INTEGER031)
GetAltUser INTEGER037
AnsiPos 16, 3
INTEGER030 = 25 - Len(U_Name())
SPrint "
", U_Name()
SPrint Space(INTEGER030)
AnsiPos 16, 4
INTEGER030 = 25 - Len(U_City)
SPrint U_City + Space(INTEGER030)
AnsiPos 16, 5
INTEGER030 = 25 - Len(U_BDPhone)
SPrint U_BDPhone + Space(INTEGER030)
AnsiPos 16, 6
INTEGER030 = 25 - Len(U_HVPhone)
SPrint U_HVPhone + Space(INTEGER030)
AnsiPos 16, 7
INTEGER030 = 25 - Len(U_Pwd)
SPrint U_Pwd + Space(INTEGER030)
AnsiPos 16, 8
INTEGER030 = 25 - Len(U_Sec)
SPrint U_Sec
SPrint Space(INTEGER030)
AnsiPos 16, 9
INTEGER030 = 25 - Len(U_Expert)
If (U_Expert == 0) Then
SPrint "N" + Space(INTEGER030)
Goto LABEL015
Endif
SPrint "Y" + Space(INTEGER030)
:LABEL015
AnsiPos 16, 10
INTEGER030 = 25 - Len(U_Trans)
SPrint U_Trans + Space(INTEGER030)
AnsiPos 16, 11
INTEGER030 = 25 - Len(U_PageLen)
SPrint U_PageLen
SPrint Space(INTEGER030)
AnsiPos 16, 12
INTEGER030 = 25 - Len(U_ExpDate)
SPrint U_ExpDate
SPrint Space(INTEGER030)
AnsiPos 16, 13
INTEGER030 = 25 - Len(U_ExpSec)
SPrint U_ExpSec
SPrint Space(INTEGER030)
AnsiPos 16, 14
INTEGER030 = 25 - Len(U_Cls)
If (U_Cls == 0) Then
SPrint "N" + Space(INTEGER030)
Goto LABEL016
Endif
SPrint "Y" + Space(INTEGER030)
:LABEL016
AnsiPos 16, 15
FOpen 1, STRING035, 2, 0
FSeek 1, 400 * (INTEGER037 - 1) + 192, 0
FRead 1, STRING038, 1
FClose 1
SPrint Asc(STRING038)
SPrint Space(24)
AnsiPos 16, 16
FOpen 1, STRING035, 2, 0
FSeek 1, 400 * (INTEGER037 - 1) + 224, 0
FRead 1, STRING037, 1
FClose 1
SPrint STRING037
SPrint Space(24)
AnsiPos 16, 18
INTEGER030 = Len(U_Cmnt1)
SPrint Left(U_Cmnt1, INTEGER030 - 6)
SPrint Space(1)
AnsiPos 16, 19
INTEGER030 = Len(U_Cmnt2)
SPrint Left(U_Cmnt2, INTEGER030 - 6)
AnsiPos 61, 3
INTEGER030 = 17 - Len(U_LDir())
SPrint U_LDir()
SPrint Space(INTEGER030)
AnsiPos 61, 4
INTEGER030 = 17 - Len(U_LDate())
SPrint U_LDate()
SPrint Space(INTEGER030)
AnsiPos 61, 5
INTEGER030 = 17 - Len(U_LTime())
SPrint U_LTime()
SPrint Space(INTEGER030)
AnsiPos 61, 6
SPrint Space(17)
AnsiPos 61, 7
INTEGER030 = 17 - Len(U_Logons())
SPrint U_Logons()
SPrint Space(INTEGER030)
AnsiPos 61, 8
INTEGER030 = 17 - Len(U_Ful())
SPrint U_Ful()
SPrint Space(INTEGER030)
AnsiPos 61, 9
INTEGER030 = 17 - Len(U_Fdl())
SPrint U_Fdl()
SPrint Space(INTEGER030)
AnsiPos 61, 10
INTEGER030 = 17 - Len(U_BdlDay())
SPrint U_BdlDay()
SPrint Space(INTEGER030)
AnsiPos 61, 11
INTEGER030 = 17 - Len(U_Bul())
SPrint U_Bul()
SPrint Space(INTEGER030)
AnsiPos 61, 12
INTEGER030 = 17 - Len(U_Bdl())
SPrint U_Bdl()
SPrint Space(INTEGER030)
AnsiPos 61, 13
If (INTEGER037 == INTEGER040) Then
INTEGER030 = 17 - Len(U_MsgRd())
SPrint U_MsgRd()
SPrint Space(INTEGER030)
Goto LABEL017
Endif
SPrint "NOT AVAILBLE"
SPrint Space(5)
:LABEL017
AnsiPos 61, 14
If (INTEGER037 == INTEGER040) Then
INTEGER030 = 17 - Len(U_MsgWr())
SPrint U_MsgWr()
SPrint Space(INTEGER030)
Goto LABEL018
Endif
SPrint "NOT AVAILBLE"
SPrint Space(5)
:LABEL018
AnsiPos 61, 15
INTEGER030 = 17 - Len(U_FSE)
If (U_FSE == 0) Then
SPrint "N"
Goto LABEL019
Endif
SPrint "Y"
:LABEL019
SPrint Space(INTEGER030)
AnsiPos 61, 16
INTEGER030 = 17 - Len(U_Def79)
If (U_Def79 == 0) Then
SPrint "N"
Goto LABEL020
Endif
SPrint "Y"
:LABEL020
SPrint Space(INTEGER030)
AnsiPos 61, 17
INTEGER030 = 17 - Len(U_Scroll)
If (U_Scroll == 0) Then
SPrint "N"
Goto LABEL021
Endif
SPrint "Y"
:LABEL021
SPrint Space(INTEGER030)
AnsiPos 61, 18
INTEGER030 = 17 - Len(U_LongHDR)
If (U_LongHDR == 0) Then
SPrint "N"
Goto LABEL022
Endif
SPrint "Y"
:LABEL022
SPrint Space(INTEGER030)
AnsiPos 61, 19
INTEGER030 = 17 - Len(ChatStat())
If (ChatStat() == 0) Then
SPrint "U"
Goto LABEL023
Endif
SPrint "A"
:LABEL023
SPrint Space(INTEGER030)
:LABEL024
STRING029 = ""
STRING029 = KInkey()
If (STRING029 == "") Goto LABEL024
If (Upper(STRING029) == "S") Then
INTEGER034 = 1
STRING042 = ""
SPrint "20H"
SPrint "
User Name: "
:LABEL025
STRING041 = KInkey()
If (STRING041 == "") Goto LABEL025
If ((STRING041 == Chr(13)) && (STRING042 == "")) Goto LABEL024
If ((STRING041 == Chr(13)) && (STRING042 <> "")) Goto LABEL028
If (STRING041 == Chr(8)) Then
If (INTEGER034 > 1) Then
SPrint Chr(8)
SPrint " "
SPrint Chr(8)
Dec INTEGER034
STRING042 = Left(STRING042, INTEGER034 - 1)
Goto LABEL026
Endif
Sound 250
Delay 1
Sound 0
Goto LABEL025
:LABEL026
Goto LABEL025
Endif
If ((INTEGER034 < 26) && (INTEGER034 >= 1)) Then
SPrint "
", STRING041
Inc INTEGER034
STRING042 = STRING042 + STRING041
Goto LABEL027
Endif
Sound 250
Delay 1
Sound 0
Goto LABEL025
:LABEL027
Goto LABEL025
:LABEL028
If (U_RecNum(Upper(STRING042)) >= 0) INTEGER037 = U_RecNum(Upper(STRING042))
SPrint "1H"
SPrint ""
Goto LABEL014
Endif
If (STRING029 == "PGUP") Then
INTEGER032 = INTEGER037 - 10
If (INTEGER037 < 10) Then
INTEGER037 = INTEGER038 + INTEGER032
Goto LABEL029
Endif
INTEGER037 = INTEGER037 - 10
:LABEL029
Goto LABEL014
Endif
If (STRING029 == "PGDN") Then
INTEGER032 = INTEGER038 - INTEGER037
If (INTEGER032 < 10) Then
INTEGER037 = 10 - INTEGER032
Goto LABEL030
Endif
INTEGER037 = INTEGER037 + 10
:LABEL030
Goto LABEL014
Endif
If (STRING029 == "RIGHT") Then
If (INTEGER037 == INTEGER038) Then
INTEGER037 = 1
Goto LABEL031
Endif
Inc INTEGER037
:LABEL031
Goto LABEL014
Endif
If (STRING029 == "LEFT") Then
If (INTEGER037 == 1) Then
INTEGER037 = INTEGER038
Goto LABEL032
Endif
Dec INTEGER037
:LABEL032
Goto LABEL014
Endif
If (STRING029 == Chr(9)) Then
If (BOOLEAN007 == 0) Then
AnsiPos INTEGER035, INTEGER036
SPrint "
", TSTRING043(INTEGER036)
INTEGER035 = 42
BOOLEAN007 = 1
AnsiPos INTEGER035, INTEGER036
SPrint "
", TSTRING045(INTEGER036)
Goto LABEL033
Endif
AnsiPos INTEGER035, INTEGER036
SPrint "
", TSTRING045(INTEGER036)
INTEGER035 = 3
BOOLEAN007 = 0
AnsiPos INTEGER035, INTEGER036
SPrint "
", TSTRING043(INTEGER036)
Endif
:LABEL033
If ((Upper(STRING029) == "DOWN") && (INTEGER036 < 19)) Then
If ((INTEGER036 == 16) && (INTEGER035 == 3)) Then
INTEGER036 = 18
AnsiPos INTEGER035, INTEGER036 - 2
SPrint "
", TSTRING043(INTEGER036 - 2)
Goto LABEL034
Endif
Inc INTEGER036
AnsiPos INTEGER035, INTEGER036 - 1
If (BOOLEAN007 == 0) Then
SPrint "
", TSTRING043(INTEGER036 - 1)
Goto LABEL034
Endif
SPrint "
", TSTRING045(INTEGER036 - 1)
:LABEL034
AnsiPos INTEGER035, INTEGER036
If (BOOLEAN007 == 0) Then
SPrint "
", TSTRING044(INTEGER036)
Goto LABEL035
Endif
SPrint "
", TSTRING046(INTEGER036)
Endif
:LABEL035
If ((STRING029 == "UP") && (INTEGER036 > 3)) Then
If ((INTEGER036 == 18) && (INTEGER035 == 3)) Then
INTEGER036 = 16
AnsiPos INTEGER035, INTEGER036 + 2
SPrint "
", TSTRING043(INTEGER036 + 2)
Goto LABEL036
Endif
Dec INTEGER036
AnsiPos INTEGER035, INTEGER036 + 1
If (BOOLEAN007 == 0) Then
SPrint "
", TSTRING043(INTEGER036 + 1)
Goto LABEL036
Endif
SPrint "
", TSTRING045(INTEGER036 + 1)
:LABEL036
AnsiPos INTEGER035, INTEGER036
If (BOOLEAN007 == 0) Then
SPrint "
", TSTRING044(INTEGER036)
Goto LABEL037
Endif
SPrint "
", TSTRING046(INTEGER036)
Endif
:LABEL037
If ((Upper(STRING029) == "A") && (INTEGER036 > 3)) Then
If ((INTEGER036 == 18) && (INTEGER035 == 3)) Then
INTEGER036 = 16
AnsiPos INTEGER035, INTEGER036 + 2
SPrint "
", TSTRING043(INTEGER036 + 2)
Goto LABEL038
Endif
Dec INTEGER036
AnsiPos INTEGER035, INTEGER036 + 1
If (BOOLEAN007 == 0) Then
SPrint "
", TSTRING043(INTEGER036 + 1)
Goto LABEL038
Endif
SPrint "
", TSTRING045(INTEGER036 + 1)
:LABEL038
AnsiPos INTEGER035, INTEGER036
If (BOOLEAN007 == 0) Then
SPrint "
", TSTRING044(INTEGER036)
Goto LABEL039
Endif
SPrint "
", TSTRING046(INTEGER036)
Endif
:LABEL039
If (STRING029 == Chr(13)) Then
Gosub LABEL040
Goto LABEL014
Endif
If (Upper(STRING029) == Chr(27)) Goto LABEL051
Goto LABEL024
:LABEL040
If (INTEGER035 == 3) Then
AnsiPos INTEGER035 + 13, INTEGER036
SPrint Space(25)
AnsiPos INTEGER035 + 13, INTEGER036
STRING040 = ""
STRING039 = ""
INTEGER033 = 1
If (INTEGER036 <> 3) Then
Gosub LABEL046
Goto LABEL041
Endif
SPrint "
NOT AVAILBLE YET "
Delay 15
Goto LABEL045
:LABEL041
If (STRING040 == "") Goto LABEL045
If (INTEGER036 == 3) Then
FOpen 5, PPEPath() + "user.inf", 2, 0
FSeek 5, 10, 0
FRead 5, WORD001, 2
FRead 5, INTEGER004, 4
FSeek 5, WORD001 * 34 + 16, 0
FSeek 5, (INTEGER037 - 1) * INTEGER004, 1
BIGSTR001 = STRING040 + Chr(0)
FWrite 5, Mid(BIGSTR001, 1, 25), 25
FClose 5
STRING030 = Chr(INTEGER037)
If (Len(STRING030) == 1) STRING030 = STRING030 + " "
STRING033 = Left(U_Name(), 1)
STRING034 = Left(STRING040, 1)
FOpen 4, STRING036 + "pcbndx.tmp", 2, 0
FOpen 3, STRING036 + "pcbndx." + STRING033, 2, 0
FSeek 3, 0, 0
:LABEL042
If (Ferr(3)) Goto LABEL043
FRead 3, STRING031, 2
FRead 3, STRING032, 25
STRING031 = STRING031 + " "
If (STRING031 <> STRING030) Then
FWrite 4, STRING031, 2
FWrite 4, STRING032 + " ", 25
Endif
Goto LABEL042
:LABEL043
FClose 3
FClose 4
Delete STRING036 + "pcbndx." + STRING033
Rename STRING036 + "pcbndx.tmp", STRING036 + "pcbndx." + STRING033
FOpen 2, STRING036 + "pcbndx." + STRING034, 2, 0
FSeek 2, 0, 2
FWrite 2, STRING030 + STRING040 + " ", 27
FClose 2
FOpen 1, STRING035, 2, 0
FSeek 1, 400 * (INTEGER037 - 1), 0
FWrite 1, STRING040 + " ", 25
FClose 1
Endif
If (INTEGER036 == 4) U_City = STRING040
If (INTEGER036 == 5) U_BDPhone = STRING040
If (INTEGER036 == 6) U_HVPhone = STRING040
If (INTEGER036 == 7) U_Pwd = STRING040
If (INTEGER036 == 8) Then
STRING040 = Left(STRING040, 3)
If (STRING040 > 255) STRING040 = 255
U_Sec = STRING040
Endif
If (INTEGER036 == 9) Then
STRING040 = Upper(Left(STRING040, 1))
If (STRING040 == "Y") STRING040 = 1
If (STRING040 == "N") STRING040 = 0
U_Expert = STRING040
Endif
If (INTEGER036 == 10) Then
STRING040 = Upper(Left(STRING040, 1))
U_Trans = STRING040
Endif
If (INTEGER036 == 11) Then
STRING040 = Left(STRING040, 3)
If (STRING040 > 255) STRING040 = 255
U_PageLen = STRING040
Endif
If (INTEGER036 == 12) U_ExpDate = STRING040
If (INTEGER036 == 13) Then
STRING040 = Left(STRING040, 3)
If (STRING040 > 255) STRING040 = 255
U_ExpSec = STRING040
Endif
If (INTEGER036 == 14) Then
STRING040 = Upper(Left(STRING040, 1))
If (STRING040 == "Y") STRING040 = 1
If (STRING040 == "N") STRING040 = 0
U_Cls = STRING040
Endif
If (INTEGER036 == 15) Then
If (STRING040 <> "") Then
FOpen 1, STRING035, 2, 0
FSeek 1, 400 * (INTEGER037 - 1) + 192, 0
FWrite 1, Chr(STRING040), 1
FClose 1
Endif
Endif
If (INTEGER036 == 16) Then
STRING040 = Upper(Left(STRING040, 1))
If (STRING040 == "Y") Then
FOpen 1, STRING035, 2, 0
FSeek 1, 400 * (INTEGER037 - 1) + 224, 0
FWrite 1, "Y", 1
U_Sec = 0
Endif
If (STRING040 == "N") Then
FOpen 1, STRING035, 2, 0
FSeek 1, 400 * (INTEGER037 - 1) + 224, 0
FWrite 1, "N", 1
Endif
FClose 1
Endif
If (INTEGER036 == 18) U_Cmnt1 = STRING040
If (INTEGER036 == 19) U_Cmnt2 = STRING040
PutUser
Endif
If (INTEGER035 == 42) Then
AnsiPos INTEGER035 + 19, INTEGER036
SPrint Space(17)
AnsiPos INTEGER035 + 19, INTEGER036
STRING040 = ""
STRING039 = ""
INTEGER033 = 1
If ((((((((((INTEGER036 <> 3) && (INTEGER036 <> 4)) && (INTEGER036 <> 5)) && (INTEGER036 <> 6)) && (INTEGER036 <> 7)) && (INTEGER036 <> 8)) && (INTEGER036 <> 11)) && (INTEGER036 <> 13)) && (INTEGER036 <> 14)) && (INTEGER036 <> 19)) Then
Gosub LABEL046
Goto LABEL044
Endif
SPrint "
NOT AVAILBLE YET "
Delay 15
Goto LABEL045
:LABEL044
If (STRING040 == "") Goto LABEL045
If (INTEGER036 == 9) Then
INTEGER041 = STRING040 - U_Fdl()
AdjTFiles INTEGER041
Endif
If (INTEGER036 == 10) Then
INTEGER043 = STRING040 - U_BdlDay()
AdjBytes INTEGER043
Endif
If (INTEGER036 == 12) Then
INTEGER042 = STRING040 - U_Bdl()
AdjTBytes INTEGER042
Endif
If (INTEGER036 == 15) Then
STRING040 = Upper(Left(STRING040, 1))
If (STRING040 == "Y") U_FSE = 1
If (STRING040 == "N") U_FSE = 0
Endif
If (INTEGER036 == 16) Then
STRING040 = Upper(Left(STRING040, 1))
If (STRING040 == "Y") U_Def79 = 1
If (STRING040 == "N") U_Def79 = 0
Endif
If (INTEGER036 == 17) Then
STRING040 = Upper(Left(STRING040, 1))
If (STRING040 == "Y") U_Scroll = 1
If (STRING040 == "N") U_Scroll = 0
Endif
If (INTEGER036 == 18) Then
STRING040 = Upper(Left(STRING040, 1))
If (STRING040 == "Y") U_LongHDR = 1
If (STRING040 == "N") U_LongHDR = 0
Endif
If (INTEGER036 == 19) Then
STRING040 = Upper(Left(STRING040, 1))
FOpen 1, STRING035, 2, 0
FSeek 1, 400 * (INTEGER037 - 1) + 389, 0
FRead 1, STRING019, 1
BitSet STRING019, 0
If (STRING040 == "U") STRING019 = 0
If (STRING040 == "A") STRING019 = 1
FSeek 1, 400 * (INTEGER037 - 1) + 389, 0
FWrite 1, STRING019, 1
FClose 1
Goto LABEL014
Endif
PutUser
Endif
:LABEL045
Return
:LABEL046
STRING039 = KInkey()
If (STRING039 == "") Goto LABEL046
If (STRING039 == Chr(13)) Goto LABEL050
If (STRING039 == Chr(8)) Then
If (INTEGER033 > 1) Then
SPrint Chr(8)
SPrint " "
SPrint Chr(8)
Dec INTEGER033
STRING040 = Left(STRING040, INTEGER033 - 1)
Goto LABEL047
Endif
Sound 250
Delay 1
Sound 0
Goto LABEL046
:LABEL047
Goto LABEL046
Endif
If (BOOLEAN007 == 0) Then
If ((INTEGER033 < 26) && (INTEGER033 >= 1)) Then
SPrint "
", STRING039
Inc INTEGER033
STRING040 = STRING040 + STRING039
Goto LABEL048
Endif
Sound 250
Delay 1
Sound 0
Goto LABEL046
:LABEL048
Goto LABEL049
Endif
If ((INTEGER033 < 18) && (INTEGER033 >= 1)) Then
SPrint STRING039
STRING040 = STRING040 + STRING039
Goto LABEL049
Endif
Sound 250
Delay 1
Sound 0
:LABEL049
Goto LABEL046
:LABEL050
Return
:LABEL051
Print "@X07"
Cls
RestScrn
Gosub LABEL083
AnsiPos INTEGER026, INTEGER027
STRING020 = ""
Goto LABEL003
Endif
If (STRING020 == Chr(7)) Then
INTEGER026 = GetX()
INTEGER027 = GetY()
MPrint Chr(7) + Chr(7)
SPrint "30H"
SPrint "
┤
Beeped User!
├"
Delay 3
SPrint "30H"
SPrint "
────────────────────"
AnsiPos INTEGER026, INTEGER027
STRING020 = ""
Goto LABEL003
Endif
If (STRING020 == Chr(12)) Then
INTEGER026 = GetX()
INTEGER027 = GetY()
If (BOOLEAN010 == 0) Then
SPrint "4H"
SPrint "
[
L
]"
BOOLEAN010 = 1
If (Upper(STRING059) == "YES") Then
For INTEGER025 = 14 To 21
AnsiPos 1, INTEGER025
ClrEol
Next
INTEGER021 = 14
INTEGER022 = 2
Print "24H"
Print "
┌────────────────────────┐"
Print "24H"
Print "
│
Sysop Locked Your Keys
│"
Print "24H"
Print "
└────────────────────────┘"
AnsiPos INTEGER026, INTEGER027
Endif
Goto LABEL052
Endif
SPrint "4H"
SPrint "
───"
BOOLEAN010 = 0
If (Upper(STRING059) == "YES") Then
Print "20H"
Print ""
Print "20H"
Print ""
Print "20H"
Print ""
Endif
AnsiPos INTEGER026, INTEGER027
Print STRING017
:LABEL052
STRING020 = ""
Goto LABEL003
Endif
If (STRING020 == Chr(5)) Then
AnsiPos INTEGER023, INTEGER020
If ((BOOLEAN009 == 0) && (BOOLEAN013 == 0)) Then
BOOLEAN009 = 1
STRING018 = Mid(STRING057, 1, 4)
INTEGER026 = GetX()
INTEGER027 = GetY()
SPrint "9H"
SPrint "
ON "
AnsiPos INTEGER026, INTEGER027
Goto LABEL053
Endif
BOOLEAN009 = 0
STRING018 = STRING047
INTEGER026 = GetX()
INTEGER027 = GetY()
SPrint "9H"
SPrint "
OFF"
AnsiPos INTEGER026, INTEGER027
:LABEL053
STRING020 = ""
Goto LABEL003
Endif
If (STRING020 == Chr(3)) Then
If (BOOLEAN011 == 0) Then
INTEGER027 = GetY()
INTEGER026 = GetX()
If (Upper(STRING060) == "MANUAL") Then
AnsiPos 36, 3
Print "@X08───────────────────────────────────────"
AnsiPos 79, 23
SaveScrn
AnsiPos INTEGER026, INTEGER027
MPrint "25H"
MPrint "
┤
Wait a Sec..
├"
SPrint "11H"
SPrint "
┌
───
────────────────────────────────────────
─
┐"
SPrint "11H"
SPrint "│
Name of CapC
│"
SPrint "11H"
SPrint "│
File to Open
:
████████████████████████████
│"
SPrint "11H"
SPrint "│
(
With Path
)C
│"
SPrint "11H"
SPrint "
└
─
───────────────────────────────────────
────
┘"
SPrint "27H"
SPrint "
"
INTEGER029 = 1
:LABEL054
STRING023 = KInkey()
If (STRING023 == "") Goto LABEL054
If (STRING023 == Chr(13)) Goto LABEL056
If (STRING023 == Chr(8)) Then
If (INTEGER029 > 1) Then
SPrint Chr(8)
Print " "
SPrint Chr(8)
Dec INTEGER029
STRING024 = Left(STRING024, INTEGER029 - 1)
Goto LABEL055
Endif
Sound 150
Delay 0
Sound 0
:LABEL055
Goto LABEL054
Endif
If (INTEGER029 == 29) Then
Sound 150
Delay 1
Sound 0
Goto LABEL054
Endif
If ((STRING023 <> Chr(13)) && (INTEGER029 < 29)) Then
SPrint "
" + STRING023
STRING024 = STRING024 + STRING023
Inc INTEGER029
Goto LABEL054
Endif
:LABEL056
If (STRING024 <> "") Then
BOOLEAN011 = 1
If (Exist(STRING024)) Goto LABEL057
FCreate 1, STRING024, 2, 0
Goto LABEL058
:LABEL057
FAppend 1, STRING024, 2, 0
:LABEL058
FPutLn 1
FPutLn 1, "────────────────────────────────────────────────────────────────────────────────"
FPut 1, " φ PerfectChat Capture started at "
FPut 1, Date()
FPut 1, " "
FPut 1, Time()
FPut 1, " with "
FPutLn 1, STRING027 + " φ"
FPutLn 1
Endif
Print "@X07"
RestScrn
Goto LABEL061
Endif
BOOLEAN011 = 1
If (Exist(STRING060)) Goto LABEL059
FCreate 1, STRING060, 2, 0
Goto LABEL060
:LABEL059
FAppend 1, STRING060, 2, 0
:LABEL060
FPutLn 1
FPutLn 1, "────────────────────────────────────────────────────────────────────────────────"
FPut 1, " φ PerfectChat Capture started at "
FPut 1, Date()
FPut 1, " "
FPut 1, Time()
FPut 1, " with "
FPutLn 1, STRING027 + " φ"
FPutLn 1
:LABEL061
Gosub LABEL083
AnsiPos INTEGER026, INTEGER027
Goto LABEL062
Endif
INTEGER026 = GetX()
INTEGER027 = GetY()
BOOLEAN011 = 0
FPutLn 1
FPut 1, " φ PerfectChat Capture ended at "
FPut 1, Date()
FPut 1, " "
FPut 1, Time()
FPut 1, " with "
FPutLn 1, STRING027 + " φ"
FPutLn 1, "────────────────────────────────────────────────────────────────────────────────"
FPutLn 1, " [Perfect Chatter v1.1 By IronMan]"
FPutLn 1
FClose 1
Gosub LABEL083
AnsiPos INTEGER026, INTEGER027
:LABEL062
STRING020 = ""
Goto LABEL003
Endif
If (STRING020 == Chr(20)) Then
INTEGER026 = GetX()
INTEGER027 = GetY()
AnsiPos INTEGER026, INTEGER027
AnsiPos 36, 3
Print "@X08───────────────────────────────────────"
AnsiPos 79, 23
SaveScrn
AnsiPos INTEGER026, INTEGER027
MPrint "25H"
MPrint "
┤
Wait a Sec..
├"
SPrint "11H"
SPrint "
┌
───
────────────────────────────────────────
─
┐"
SPrint "11H"
SPrint "│
C
│"
SPrint "11H"
SPrint "│
File to View
:
████████████████████████████
│"
SPrint "11H"
SPrint "│
C
│"
SPrint "11H"
SPrint "
└
─
───────────────────────────────────────
────
┘"
SPrint "27H"
SPrint "
"
INTEGER028 = 1
:LABEL063
STRING025 = KInkey()
If (STRING025 == "") Goto LABEL063
If (STRING025 == Chr(13)) Goto LABEL065
If (STRING025 == Chr(8)) Then
If (INTEGER028 > 1) Then
SPrint Chr(8)
Print " "
SPrint Chr(8)
Dec INTEGER028
STRING026 = Left(STRING026, INTEGER028 - 1)
Goto LABEL064
Endif
Sound 150
Delay 0
Sound 0
:LABEL064
Goto LABEL063
Endif
If (INTEGER028 == 29) Then
Sound 150
Delay 1
Sound 0
Goto LABEL063
Endif
If ((STRING025 <> Chr(13)) && (INTEGER028 < 29)) Then
SPrint "
" + STRING025
STRING026 = STRING026 + STRING025
Inc INTEGER028
Goto LABEL063
Endif
:LABEL065
If (STRING026 <> "") Then
If (Exist(STRING026)) Then
Print "@X07"
StartDisp 2
Cls
Newlines 3
PrintLn " @X08<──────────-> @X0FVIEWING FILE @X08<────────────>"
Newlines 2
DispStr "%" + STRING026
Newlines 3
PrintLn " @X08<──────────-> @X0FEnd Of File! @X08<────────────>"
Newlines 2
Wait
StartDisp 1
Goto LABEL066
Endif
SPrint "31H"
SPrint "
File Not found"
Endif
:LABEL066
Print "@X07"
RestScrn
Gosub LABEL083
STRING026 = ""
INTEGER028 = 1
AnsiPos INTEGER026, INTEGER027
STRING020 = ""
Goto LABEL003
Endif
If (STRING020 == Chr(23)) Then
For INTEGER024 = 4 To 12
AnsiPos 1, INTEGER024
ClrEol
Next
INTEGER020 = 4
INTEGER023 = 2
AnsiPos INTEGER023, INTEGER020
Goto LABEL003
Endif
If (STRING020 == Chr(13)) Then
Gosub LABEL005
Inc INTEGER020
INTEGER023 = 2
AnsiPos INTEGER023, INTEGER020
If ((BOOLEAN011 == 1) && (STRING062 <> "")) FPutLn 1, "[" + STRING022 + "]: " + STRING062
STRING062 = ""
BIGSTR003 = ""
Endif
Endif
Goto LABEL003
:LABEL067
If (BOOLEAN010 == 0) Then
If ((BOOLEAN012 == 1) && (BOOLEAN008 == 0)) Then
STRING017 = TSTRING065(INTEGER017)
Endif
If ((INTEGER021 > 21) && (INTEGER022 < 78)) Then
For INTEGER025 = 14 To 19
AnsiPos 2, INTEGER025
ClrEol
Next
Gosub LABEL082
For INTEGER025 = 20 To 21
AnsiPos 2, INTEGER025
ClrEol
Next
INTEGER022 = 2
AnsiPos INTEGER022, INTEGER021
Goto LABEL003
Goto LABEL068
Endif
If ((INTEGER022 == 78) && (INTEGER021 == 21)) Then
For INTEGER025 = 14 To 19
AnsiPos 2, INTEGER025
ClrEol
Next
Gosub LABEL082
For INTEGER025 = 20 To 21
AnsiPos 2, INTEGER025
ClrEol
Next
AnsiPos INTEGER022 - Len(BIGSTR002) / 5, INTEGER021 - 1
Print Space(Len(BIGSTR002) / 5)
INTEGER022 = 2
AnsiPos INTEGER022, INTEGER021
Print BIGSTR002
INTEGER022 = Len(BIGSTR002) / 5 + 2
If (BOOLEAN011 == 1) Then
FPutLn 1, "[" + STRING028 + "]: ", STRING063
STRING063 = BIGSTR002
Endif
Goto LABEL003
Endif
:LABEL068
STRING021 = MInkey()
If (STRING021 == "") Goto LABEL003
If (Len(STRING021) > 1) Goto LABEL003
AnsiPos INTEGER022, INTEGER021
If ((STRING021 == Chr(8)) && (INTEGER022 > 2)) Then
STRING063 = Left(STRING063, Len(STRING063) - 1)
BIGSTR002 = Left(BIGSTR002, Len(BIGSTR002) - 5)
Print Chr(8) + Chr(32) + Chr(8)
Dec INTEGER022
Goto LABEL003
Goto LABEL069
Endif
If (STRING021 == Chr(8)) Goto LABEL003
:LABEL069
If ((INTEGER022 == 78) && (STRING021 > Chr(27))) Then
If (Len(BIGSTR002) < 78) Then
AnsiPos INTEGER022 - Len(BIGSTR002) / 5, INTEGER021
Print Space(Len(BIGSTR002) / 5)
INTEGER022 = 2
Inc INTEGER021
AnsiPos INTEGER022, INTEGER021
Print BIGSTR002
INTEGER022 = Len(BIGSTR002) / 5 + 2
Goto LABEL070
Endif
Inc INTEGER021
INTEGER022 = 2
AnsiPos INTEGER022, INTEGER021
BIGSTR002 = ""
:LABEL070
If (BOOLEAN011 == 1) Then
FPutLn 1, "[" + STRING028 + "]: ", STRING063
STRING063 = BIGSTR002
Endif
Endif
If (STRING021 == " ") Then
Gosub LABEL071
Goto LABEL076
:LABEL071
For INTEGER008 = 1 To INTEGER007
If (Upper(TSTRING014(INTEGER008)) == Upper(StripAtx(BIGSTR002))) Then
Backup Len(BIGSTR002) / 5
If (INTEGER022 - Len(StripAtx(BIGSTR002)) + Len(TSTRING015(INTEGER008)) - 78 < 0) Then
Gosub LABEL072
STRING063 = Left(STRING063, Len(STRING063) - Len(StripAtx(BIGSTR002))) + TSTRING015(INTEGER008)
Goto LABEL075
Endif
If (BOOLEAN011 == 1) Then
STRING063 = Left(STRING063, Len(STRING063) - Len(StripAtx(BIGSTR002)))
FPutLn 1, "[" + STRING028 + "]: ", STRING063
STRING063 = TSTRING015(INTEGER008)
Endif
If (INTEGER021 < 21) Then
Print Space(Len(BIGSTR002) / 5)
INTEGER022 = Len(TSTRING015(INTEGER008)) + 2
Inc INTEGER021
AnsiPos 2, INTEGER021
Gosub LABEL072
Goto LABEL074
:LABEL072
If (BOOLEAN012 == 0) Then
Print STRING017 + TSTRING015(INTEGER008)
Goto LABEL073
Endif
STRING012 = ""
For INTEGER006 = 1 To Len(TSTRING015(INTEGER008))
STRING012 = STRING012 + TSTRING065(INTEGER017) + Mid(TSTRING015(INTEGER008), INTEGER006, 1)
Inc INTEGER017
If (INTEGER017 == S2I(STRING055, 10) + 1) INTEGER017 = 1
Next
Print STRING012
:LABEL073
Return
:LABEL074
Goto LABEL075
Endif
For INTEGER025 = 14 To 19
AnsiPos 2, INTEGER025
ClrEol
Next
Gosub LABEL082
For INTEGER025 = 20 To 21
AnsiPos 2, INTEGER025
ClrEol
Next
AnsiPos INTEGER022 - Len(BIGSTR002) / 5, INTEGER021 - 1
Print Space(Len(BIGSTR002) / 5)
INTEGER022 = 2
AnsiPos INTEGER022, INTEGER021
Gosub LABEL072
INTEGER022 = Len(TSTRING015(INTEGER008)) + 2
If (BOOLEAN011 == 1) Then
FPutLn 1, "[" + STRING028 + "]: ", STRING063
STRING063 = BIGSTR002
Endif
:LABEL075
INTEGER022 = INTEGER022 - Len(StripAtx(BIGSTR002)) + Len(TSTRING015(INTEGER008))
Break
Endif
Next
Return
:LABEL076
BIGSTR002 = ""
Print STRING017 + STRING021
STRING063 = STRING063 + STRING021
Inc INTEGER022
Goto LABEL003
Endif
If (STRING021 > Chr(27)) Then
Print STRING017 + STRING021
STRING063 = STRING063 + STRING021
BIGSTR002 = BIGSTR002 + STRING017 + STRING021
Inc INTEGER022
Endif
If (BOOLEAN012 == 1) Then
If (INTEGER017 == STRING055) Then
INTEGER017 = 1
Goto LABEL077
Endif
Inc INTEGER017
Endif
:LABEL077
If (STRING021 < Chr(28)) Then
If ((STRING021 == Chr(27)) && (STRING052 == "YES")) Then
If (BOOLEAN011 == 1) Then
If (STRING063 <> "") Then
FPutLn 1, "[" + STRING028 + "]: " + STRING063
Endif
FPutLn 1
FPut 1, " φ PerfectChat Capture ended at "
FPut 1, Date()
FPut 1, " "
FPut 1, Time()
FPut 1, " with "
FPutLn 1, STRING027 + " φ"
FPutLn 1, "────────────────────────────────────────────────────────────────────────────────"
FPutLn 1, " [Perfect Chatter v1.1 By IronMan]"
FPutLn 1
FClose 1
Endif
Goto LABEL084
Endif
If (STRING021 == Chr(26)) Then
INTEGER026 = GetX()
INTEGER027 = GetY()
AnsiPos 36, 3
Print "@X08───────────────────────────────────────"
AnsiPos 79, 23
SaveScrn
SPrint "23H"
SPrint "
┤
User Viewing Help File
├"
AnsiPos 30, 6
MPrint "0H"
MPrint "
┌──
───
───────────────
──
──┐"
MPrint "0H"
MPrint "│
▄ ▄ ▄▄ ▄ ▄▄▄ █
▌
│"
MPrint "0H"
MPrint "│
█▄█ █▄ █
▌
█▄█ █
▌
│"
MPrint "30H"
MPrint "│
█
▌
█ █▄ █▄ █
▌
▀
│"
MPrint "30H"
MPrint "│
═──═─═──═──═──══ ▀ ═
─
│"
MPrint "30H"
MPrint "│ [
CTRL-W
]
Clear Screen
│"
MPrint "30H"
MPrint "│ [
CTRL-E
]
Remark Words
│"
MPrint "30H"
MPrint "│ [
CTRL-O
]
Change Color
│"
MPrint "30H"
MPrint "│ [
CTRL-G
]
CBeep Sysop
│"
MPrint "30H"
MPrint "│ [
CTRL-Z
]
This Help │"
MPrint "30H"
MPrint "│
[
ESC
]
Quit Chat │"
MPrint "30H"
MPrint "└────
──────────────
────
──┘"
:LABEL078
STRING068 = MInkey()
If ((STRING068 <> Chr(13)) && (STRING068 <> " ")) Goto LABEL078
Cls
RestScrn
Gosub LABEL083
AnsiPos INTEGER022, INTEGER021
STRING021 = ""
Goto LABEL003
Endif
If (STRING021 == Chr(15)) Then
AnsiPos INTEGER022, INTEGER021
If ((BOOLEAN012 == 0) && (BOOLEAN008 == 0)) Then
BOOLEAN012 = 1
INTEGER026 = GetX()
INTEGER027 = GetY()
Print "28H"
Print "
ON "
AnsiPos INTEGER026, INTEGER027
Goto LABEL079
Endif
If ((BOOLEAN012 == 1) && (BOOLEAN008 == 0)) Then
BOOLEAN012 = 0
STRING017 = STRING048
INTEGER026 = GetX()
INTEGER027 = GetY()
Print "28H"
Print "
OFF"
AnsiPos INTEGER026, INTEGER027
Endif
:LABEL079
STRING021 = ""
Goto LABEL003
Endif
If (STRING021 == Chr(13)) Then
Gosub LABEL071
Inc INTEGER021
INTEGER022 = 2
AnsiPos INTEGER022, INTEGER021
If ((BOOLEAN011 == 1) && (STRING063 <> "")) FPutLn 1, "[" + STRING028 + "]: " + STRING063
STRING063 = ""
BIGSTR002 = ""
Goto LABEL003
Endif
If (STRING021 == Chr(7)) Then
If (Upper(STRING061) == "YES") Then
INTEGER026 = GetX()
INTEGER027 = GetY()
Sound 1000
MPrint "30H"
MPrint "
┤
Beeped Sysop!
├"
Delay 3
MPrint "30H"
MPrint "
────────────────────"
Sound 0
AnsiPos INTEGER026, INTEGER027
STRING021 = ""
Goto LABEL003
Endif
Endif
If (STRING021 == Chr(5)) Then
AnsiPos INTEGER022, INTEGER021
If ((BOOLEAN008 == 0) && (BOOLEAN012 == 0)) Then
BOOLEAN008 = 1
STRING017 = Mid(STRING058, 1, 4)
INTEGER026 = GetX()
INTEGER027 = GetY()
Print "16H"
Print "
ON "
AnsiPos INTEGER026, INTEGER027
Goto LABEL080
Endif
BOOLEAN008 = 0
STRING017 = STRING048
INTEGER026 = GetX()
INTEGER027 = GetY()
Print "16H"
Print "
OFF"
AnsiPos INTEGER026, INTEGER027
:LABEL080
STRING021 = ""
Goto LABEL003
Endif
If (STRING021 == Chr(23)) Then
For INTEGER025 = 14 To 21
AnsiPos 1, INTEGER025
ClrEol
Next
INTEGER021 = 14
INTEGER022 = 2
AnsiPos INTEGER022, INTEGER021
Goto LABEL003
Endif
Endif
Endif
Goto LABEL003
:LABEL081
INTEGER045 = 4
For INTEGER044 = 11 To 12
BIGSTR004 = ScrText(2, INTEGER044, 77, 1)
If (StripAtx(BIGSTR004) <> STRING066) Then
AnsiPos 2, INTEGER045
Print BIGSTR004
Inc INTEGER045
Endif
Next
INTEGER020 = INTEGER045
Return
:LABEL082
INTEGER047 = 14
For INTEGER046 = 20 To 21
BIGSTR005 = ScrText(2, INTEGER046, 77, 1)
If (StripAtx(BIGSTR005) <> STRING066) Then
AnsiPos 2, INTEGER047
Print BIGSTR005
Inc INTEGER047
Endif
Next
INTEGER021 = INTEGER047
Return
:LABEL083
SPrint "6H"
SPrint "
[
CAPTURE:
OFF
REMARK:
OFF
COLOR:
OFF
]"
If (BOOLEAN011 == 1) Then
SPrint "6H"
SPrint "
ON "
Endif
If (BOOLEAN009 == 1) Then
SPrint "9H"
SPrint "
ON "
Endif
If (BOOLEAN013 == 1) Then
SPrint "1H"
SPrint "
ON "
Endif
Return
:LABEL084
Print "@X07"
Cls
For INTEGER014 = 1 To 23
AnsiPos 1, INTEGER014
Print TSTRING016(INTEGER014)
Next
AnsiPos INTEGER012, INTEGER013
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 7 Cls
; 15 ClrEol
; 1 Wait
; 365 Goto
; 396 Let
; 74 Print
; 2 PrintLn
; 245 If
; 2 FCreate
; 12 FOpen
; 2 FAppend
; 15 FClose
; 2 FGet
; 25 FPut
; 35 FPutLn
; 3 StartDisp
; 2 PutUser
; 1 Delete
; 1 AdjTime
; 25 Gosub
; 9 Return
; 14 Delay
; 27 Inc
; 9 Dec
; 4 Newlines
; 1 DispStr
; 142 AnsiPos
; 2 Backup
; 5 SaveScrn
; 5 RestScrn
; 20 Sound
; 243 SPrint
; 37 MPrint
; 1 Rename
; 13 FSeek
; 7 FRead
; 9 FWrite
; 1 AdjBytes
; 1 GetAltUser
; 1 AdjTBytes
; 1 AdjTFiles
; 1 BitSet
;
;
; ■ Functions used :
;
; 1 -
; 10 *
; 19 /
; 246 +
; 82 -
; 181 ==
; 31 <>
; 48 <
; 28 <=
; 19 >
; 60 >=
; 194 !
; 99 &&
; 28 ||
; 87 Len(
; 23 Upper()
; 8 Mid()
; 34 Left()
; 47 Space()
; 2 Ferr()
; 111 Chr()
; 2 Asc()
; 5 Date()
; 5 Time()
; 6 U_Name()
; 2 U_LDate()
; 2 U_LTime()
; 2 U_LDir()
; 2 U_Logons()
; 2 U_Ful()
; 3 U_Fdl()
; 3 U_BdlDay()
; 3 U_Bdl()
; 2 U_Bul()
; 12 StripAtx()
; 3 PCBDat()
; 17 PPEPath()
; 2 U_MsgRd()
; 2 U_MsgWr()
; 18 ReadLine()
; 2 MinLeft()
; 3 Exist()
; 2 S2I()
; 18 GetX()
; 18 GetY()
; 1 GrafMode()
; 1 FileInf()
; 7 KInkey()
; 2 MInkey()
; 3 U_RecNum()
; 7 ScrText()
; 1 Mixed()
; 2 ChatStat()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WRAMadH
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; R - Read user ■ 5
; User records are read, this may signify that someone wants to get
; various informations about a user (for example his password), but
; this may also be normal for a program accessing user records (for
; example a User Editor)
; ■ Search for : GETALTUSER
;
; A - Adjust online time remaining ■ 5
; Program modify the amount of online time remaining, this may
; be a way to bypass time limits
; ■ Search for : ADJTIME
;
; M - Send text to modem only ■ 4
; Some informations are sent only to the modem, not to the local
; screen, this is a well known way to make stealth backdoors, Check!
; ■ Search for : SENDMODEM, MPRINT, MPRINTLN
;
; a - Adjust ratio ■ 4
; User's ratio is adjusted by changing the amount of files/bytes
; uploaded. This may be normal for a user editor.
; ■ Search for : ADJBYTES, ADJDBYTES, ADJTBYTES, ADJTFILES
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
; H - Read Password or Password History ■ 5
; Program is reading the user's password or last password history
; This may be ok for a password manager, but it is very suspect. Check!
; ■ Search for : U_PWDHIST, U_PWD
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 28 For/Next
; 2 While/EndWhile
; 160 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------